// #include "c1.h"
// typedef int ElemType;
// #include "c2-2.h"
// #include "bo2-2.h"
// #include "func2-2.h"

// 检验单链表操作的主函数
// TEST(main2_2, demo)
// {
//     LOG(INFO) << "开始测试带头节点的单链表的基本操作！";
//     LinkList L;
//     ElemType e, e0;
//     Status i;
//     int j,k;
//     InitList(L);
//     for(j = 1; j<=5; j++)
//         i = ListInsert(L, 1, j);//在L的表头插入j
//     printf("在L的表头依次插入1~5后，L=");
//     ListTraverse(L, print);
//     i = ListEmpty(L);
//     ASSERT_EQ(0,i);
//     ClearList(L);
//     printf("清空L后，L=");
//     ListTraverse(L, print);
//     i = ListEmpty(L);
//     ASSERT_EQ(1,i);
//     printf("L是否为空？i=%d（1：是 0：否），L的长度=%d\n",i, ListLength(L));
//     for(j = 1; j<=10; j++)
//         ListInsert(L, j, j);//在L表尾插入j
//     printf("在L的表头依次插入1~10后，L=");
//     ListTraverse(L, print);
//     for(j = 1; j <=10; j++) //测试前10个数据
//     {
//         GetElem(L, j, e0); //把表L中的第j个数据赋给e0
//         i = PriorElem(L, e0, e);//求e0的前驱，如成功， 将值赋给e
//         if(i == ERROR)
//             printf("元素%d无前驱\n",e0);
//         else
//             printf("元素%d的前驱为%d\n",e0,e);
//     }
//     for(j = ListLength(L)-1; j<=ListLength(L);j++ ) //测试后2个数据
//     {
//         GetElem(L, j, e0); //把表L中的第j个数据赋给e0
//         i = NextElem(L, e0, e);//求e0的后继，如成功， 将值赋给e
//         if(i == ERROR)
//             printf("元素%d无后继\n",e0);
//         else
//             printf("元素%d的后继为%d\n",e0,e);
//     }
//     k = ListLength(L);
//     for(j = k+1; j >=k ; j--)
//     {
//         i = ListDelete(L, j , e);
//         if(i == ERROR)
//             printf("删除第%d个元素失败（不存在此元素）\n", j);
//         else
//             printf("删除第%d个元素成功，值为%d\n",j, e);
//     }
//     printf("依次输出L的元素：");
//     ListTraverse(L, print);
//     DestroyList(L);
//     printf("销毁L后，L=%p\n", L);

// }